Fix recent change in diff-no-select
authorMichael Albinus <michael.albinus@gmx.de>
Fri, 28 Feb 2025 17:03:54 +0000 (18:03 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Fri, 28 Feb 2025 17:03:54 +0000 (18:03 +0100)
* lisp/vc/diff.el (diff-no-select): Keep initial default directory
in *Diff* buffer.

lisp/vc/diff.el

index 555ad80d1ddda2f55499b64ceb58712521c71247..fa12f1677eb791b84b11aa7096cf8a0b7f76aa18 100644 (file)
@@ -187,7 +187,8 @@ returns the buffer used."
                                               (prin1-to-string new))))
                                   (list (or old-alt old)
                                         (or new-alt new)))))
-                    " ")))
+                    " "))
+        (thisdir default-directory))
     (with-current-buffer buf
       (setq buffer-read-only t)
       (buffer-disable-undo (current-buffer))
@@ -198,14 +199,15 @@ returns the buffer used."
       (setq-local revert-buffer-function
                   (lambda (_ignore-auto _noconfirm)
                     (diff-no-select old new switches no-async (current-buffer))))
-      (setq default-directory temporary-file-directory)
+      (setq default-directory thisdir)
       (setq diff-default-directory default-directory)
       (let ((inhibit-read-only t))
        (insert command "\n"))
       (with-file-modes #o600
         (if (and (not no-async) (fboundp 'make-process))
-           (let ((proc (start-process "Diff" buf shell-file-name
-                                       shell-command-switch command)))
+           (let* ((default-directory temporary-file-directory)
+                   (proc (start-process "Diff" buf shell-file-name
+                                        shell-command-switch command)))
              (set-process-filter proc #'diff-process-filter)
               (set-process-sentinel
                proc (lambda (proc _msg)
@@ -213,7 +215,8 @@ returns the buffer used."
                         (diff-sentinel (process-exit-status proc)
                                        old-alt new-alt)))))
          ;; Async processes aren't available.
-         (let ((inhibit-read-only t))
+         (let* ((default-directory temporary-file-directory)
+                 (inhibit-read-only t))
            (diff-sentinel
             (call-process shell-file-name nil buf nil
                           shell-command-switch command)